]>
Commit | Line | Data |
---|---|---|
5defb682 P |
1 | IDENTIFICATION DIVISION |
2 | PROGRAM-ID FallingParticle | |
3 | VERSION 20240225 | |
4 | COMMENT Calculate the deflection from the vertical caused by the Earth's rotation of a particle falling freely from rest from a height h. | |
5 | COMMENT Differential Equations: | |
6 | COMMENT x''=-bz'+ay' # x-axis is along latitude, directed to east | |
7 | COMMENT y''=-ax' # y-axis is along longitude, directed to north | |
8 | COMMENT z''=-g+ax' # z-axis is perpendicular to the surface of earth | |
9 | COMMENT g: gravitational acceleration = 9,81 m/s² | |
10 | COMMENT a: 2*omega*sin(phi) | |
11 | COMMENT b: 2*omega*cos(phi) | |
12 | COMMENT omega: rotation velocity of the earth = 2*pi/day | |
13 | COMMENT phi: Latitude of location (0-90°) | |
14 | COMMENT Initial Condition: z(0)=h | |
15 | COMMENT The full solution requires 6 INTEGRATORs, Anabrid-THAT just has 5. The deflection to longitude (y) is neglegible and can be omitted (marked #*). | |
16 | COMMENT It could also be solved in a separated algorithm omitting x. | |
17 | ||
18 | ENVIRONMENT DIVISION | |
19 | ENGINE Anabrid-THAT | |
20 | TIMEBASE 1ms | |
21 | REQUIRES COEFFICIENT 5, INTEGRATOR 5, SUMMER 1, INVERTER 1 | |
22 | ||
23 | DATA DIVISION | |
24 | OUTPUT OUTPUT.X x | |
25 | OUTPUT OUTPUT.Y y | |
26 | OUTPUT OUTPUT.Z z | |
27 | COEFFICIENT.1 AY # 2*2pi/day*sin(phi) | |
28 | COEFFICIENT.2 AX # = AY | |
29 | COEFFICIENT.3 B # 2*2pi/day*cos(phi) | |
7fbf87e4 P |
30 | COEFFICIENT.4 G # gravitational acceleration = 9,81 m/s² |
31 | COEFFICIENT.5 H # height h | |
5defb682 P |
32 | |
33 | PROGRAM DIVISION | |
34 | -1 -> COEFFICIENT.H -> -h | |
35 | ||
36 | -bz',ay' -> INTEGRATOR -> -x' # Input is x'' | |
37 | -x' -> INTEGRATOR -> x | |
38 | ||
39 | y'' -> INTEGRATOR -> -y' | |
40 | #* -y' -> INTEGRATOR -> y | |
41 | ||
42 | z'' -> INTEGRATOR -> -z' | |
43 | -z', IC:-h, SJ:limiter -> INTEGRATOR -> z | |
44 | CAT:z -> DIODE -> limiter # limit z to >= 0 | |
45 | ||
46 | -x' -> COEFFICIENT.AX -> -ax'=y'' | |
47 | -y' -> COEFFICIENT.AY -> -ay' | |
48 | -ay' -> INVERTER -> ay' | |
49 | -z' -> COEFFICIENT.B -> -bz' | |
50 | +1 -> COEFFICIENT.G -> g | |
51 | -ax', g -> SUMMER -> -g+ax'=z'' | |
52 | ||
53 | OPERATION DIVISION | |
54 | MODE REPEAT | |
55 | OP-TIME 7,3ms |